package com.linkhub.oms.data.sync.api.wms.domain.dto;

import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * @author Jaycle
 * @version 1.0.0
 * @description 加工单创建请求
 * @date 2024/06/14日 12:38
 */
@Data
public class WmsProcessOrderCreateDTO implements Serializable {
    /**
     * 货主代码
     */
    private String ownerCode;

    /**
     * 仓库代码
     */
    private String warehouseCode;

    /**
     * ERP加工单代码
     */
    private String processOrderCode;

    /**
     * 单据类型，固定为CNJG
     */
    private String orderType;


    /**
     * 加工类型 1=组合加工 2=拆解加工
     */
    private String serviceType;

    /**
     * 计划成品数量
     */
    private String planQty;

    /**
     * 原料项列表
     */
    private MaterialItems materialitems;

    /**
     * 成品项
     */
    private ProductItems productitems;

    @Data
    public static class MaterialItems {
        /**
         * 原料项
         */
        private List<MaterialItem> item;

        @Data
        public static class MaterialItem {
            /**
             * 被加工的单个产品ID
             */
            private String itemCode;

            /**
             * 被加工的单个产品消耗数量
             */
            private String quantity;

            /**
             * 用户定义字段1
             */
            private String userDefined1;

            /**
             * 配比数量
             */
            private String ratioQty;
        }
    }

    @Data
    public static class ProductItems {
        /**
         * 成品项
         */
        private ProductItem item;

        @Data
        public static class ProductItem {
            /**
             * 加工后的产品ID
             */
            private String itemCode;

            /**
             * 加工后的产品数量，与planQty一致
             */
            private String quantity;

            /**
             * 用户定义字段1
             */
            private String userDefined1;
        }
    }
}
